package com.patterns.templateMethod.commonTemplateMethod;

/**
 * Created by Xiao Yiyun on 2017/4/19.
 * 模板方法模式
 * 抽象模板类
 */
public abstract class AbstractClass {
    //基本方法,定义为抽象类
    //由子类重写实现多态
    public abstract void method1();
    public abstract void method2();
    //模板方法
    //实现对基本方法的调度，完成固定的逻辑
    //为了防止恶意重写，+final关键字
    public final void templateMethod() {
        //调用基本方法
        this.method1();
        this.method2();
    }
}